package br.ufsc.ctc.ine5622.compilador.lex;

public interface ParserConstants
{
    int START_SYMBOL = 60;

    int FIRST_NON_TERMINAL    = 60;
    int FIRST_SEMANTIC_ACTION = 95;

    int[][] PARSER_TABLE =
    {
        { -1, -1, -1, -1, -1, -1, -1,  0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 },
        { -1, -1, -1, -1, -1, -1, -1, -1,  1, -1, -1,  1, -1, -1, -1, -1,  1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,  1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,  1, -1 },
        { -1, -1, -1, -1, -1, -1, -1, -1,  3, -1, -1,  3, -1, -1, -1, -1,  3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,  2, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,  3, -1 },
        { -1, -1, -1, -1, -1, -1, -1, -1,  4, -1, -1,  5, -1, -1, -1, -1,  5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,  5, -1 },
        { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,  6, -1, -1, -1, -1,  6, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,  7, -1 },
        { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,  8, -1, -1, -1, -1,  9, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 },
        { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 11, -1, -1, -1, -1, 10, -1, -1, -1, -1, -1, -1, -1, 11, -1, -1, -1, -1, -1, -1, -1, -1 },
        { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 12, -1, -1, -1, -1, -1, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 },
        { -1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 },
        { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 15, -1, -1, -1, -1, 16, -1, -1, -1, -1, -1, -1, 16, -1, -1, -1, -1, -1, -1, -1, -1 },
        { -1, -1, -1, -1, -1, 17, 18, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 },
        { -1, -1, -1, -1, -1, -1, -1, -1, -1, 19, 20, -1, -1, -1, 19, 19, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 19, 21, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 },
        { -1, 22, 22, 22, 22, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, 22, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 },
        { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 23, -1, -1, -1, -1, -1, -1, 24, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 },
        { -1, 25, 26, 26, 26, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 26, 26, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 },
        { -1, -1, -1, -1, -1, -1, -1, -1, -1, 30, -1, -1, -1, -1, 27, 29, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 },
        { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 31, -1 },
        { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 32, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 33 },
        { -1, 34, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 36, -1, 41, 39, 40, -1, -1, -1, -1, -1, -1, -1, -1, -1, 37, -1, 38, -1, -1, -1, 41, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 35, 41 },
        { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 42, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 43, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 43 },
        { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 47, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 47, -1, -1, -1, -1, 46, -1, 45, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, -1, 47 },
        { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 48, -1, -1, -1, -1, -1, -1, 49, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 },
        { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 50, -1, -1, -1, -1, 51, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 },
        { -1, 52, 52, 52, 52, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 52, 52, 52, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 52, -1, -1, -1, 52, 52, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 },
        { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 54, 54, -1, -1, -1, -1, -1, -1, -1, -1, 54, -1, -1, -1, -1, -1, 54, 54, -1, 54, 54, -1, 53, 53, -1, 54, -1, 54, -1, -1, -1, -1, -1, -1, -1, 53, 53, 53, 53, -1, 54 },
        { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 57, 56, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 60, 59, 58, 55, -1, -1 },
        { -1, 61, 61, 61, 61, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 61, 61, 61, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 61, -1, -1, -1, 61, 61, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 },
        { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 63, 63, -1, -1, 62, -1, -1, -1, -1, -1, 63, -1, -1, -1, -1, -1, 63, 63, -1, 63, 63, -1, 63, 63, -1, 63, -1, 63, 62, 62, -1, -1, -1, -1, -1, 63, 63, 63, 63, -1, 63 },
        { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 64, 65, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 },
        { -1, 67, 67, 67, 67, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 67, 67, 67, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 67, -1, -1, -1, 67, 67, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 },
        { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 69, 69, -1, -1, 69, 68, -1, -1, -1, -1, 69, -1, -1, -1, -1, -1, 69, 69, 68, 69, 69, -1, 69, 69, -1, 69, -1, 69, 69, 69, 68, 68, -1, -1, -1, 69, 69, 69, 69, -1, 69 },
        { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 73, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 72, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 70, 71, -1, -1, -1, -1, -1, -1, -1, -1, -1 },
        { -1, 78, 79, 79, 79, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 74, 79, 79, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 77, -1, -1, -1, 76, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 },
        { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 82, 82, -1, -1, 82, 82, -1, -1, -1, -1, 82, -1, -1, -1, -1, -1, 82, 82, 82, 82, 82, -1, 82, 82, 80, 82, 81, 82, 82, 82, 82, 82, -1, -1, -1, 82, 82, 82, 82, -1, 82 },
        { -1, -1, 83, 84, 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }
    };

    int[][] PRODUCTIONS = 
    {
        {   8,   2,  96,  38,  61,  40 },
        {  62,  63,  64,  76 },
        {  33,   2,  97,  57,  74,  98,  38,  62 },
        {   0 },
        {   9,  99,  68, 100,  51,  71, 101,  38,  63 },
        {   0 },
        {  65,  38,  64 },
        {   0 },
        {  12,   2, 102,  66, 104,  38,  61, 106 },
        {  17,   2, 103,  66, 104,  51,  75, 105,  38,  61, 106 },
        {  43,  70, 107,  68, 108,  51,  75, 109,  67,  44 },
        {   0 },
        {  38,  70, 107,  68, 108,  51,  75, 109,  67 },
        {   0 },
        {   2, 112,  69 },
        {  39,  68 },
        {   0 },
        {   6, 110 },
        {   7, 111 },
        {  75 },
        {  11,  45,  74, 113,  46 },
        {  31,  45,  72, 114,  73, 115,  46,  28,  75, 116 },
        {  74, 117,  53,  74, 118 },
        {  39, 119,  74, 117,  53,  74, 118 },
        {   0 },
        {   2, 120 },
        {  94 },
        {  15, 121 },
        {  30, 122 },
        {  16, 123 },
        {  10, 124 },
        {  58,  78,  77,  59 },
        {  38,  78,  77 },
        {   0 },
        {   2, 125,  80 },
        {  76 },
        {  18,  83, 126,  19,  78,  79 },
        {  32,  83, 126,  29,  78 },
        {  34,   2, 127,  28,  83, 128,  35,  83, 128,  36,  83, 128,  29,  78 },
        {  21,  43, 129,  68,  44 },
        {  22,  43,  83, 130,  82,  44 },
        {   0 },
        {  20,  78 },
        {   0 },
        {  52, 131,  83, 132 },
        {  45, 133,  83, 134,  81, 135,  46,  52,  83, 132 },
        {  43, 136,  83, 137,  82,  44, 138 },
        { 139 },
        {  39, 140,  83 },
        {   0 },
        {  39,  83, 141,  82 },
        {   0 },
        {  86, 142,  84 },
        {  85,  86, 143 },
        {   0 },
        {  57, 144 },
        {  42, 145 },
        {  41, 146 },
        {  56, 147 },
        {  55, 148 },
        {  54, 149 },
        { 167,  89, 150,  87 },
        {  88, 151,  89, 152,  87 },
        {   0 },
        {  47, 153 },
        {  48, 154 },
        {  23, 155 },
        {  92, 156,  90 },
        {  91, 157,  92, 158,  90 },
        {   0 },
        {  49, 159 },
        {  50, 160 },
        {  37, 161 },
        {  24, 162 },
        {  25, 163,  92, 164 },
        {  48, 165,  92, 166 },
        {  47, 165,  92, 166 },
        {  43, 167,  83,  44, 168 },
        {   2, 125,  93, 169 },
        {  94, 170 },
        {  43, 171,  83, 137,  82,  44, 172 },
        {  45, 133,  83, 173,  81, 174,  46 },
        { 175 },
        {   3, 176 },
        {   4, 177 },
        {  26, 178 },
        {  27, 179 },
        {   5, 180 }
    };

    String[] PARSER_ERROR =
    {
        "",
        "Era esperado fim de programa",
        "Era esperado id",
        "Era esperado num_int",
        "Era esperado num_real",
        "Era esperado literal",
        "Era esperado ref",
        "Era esperado val",
        "Era esperado programa",
        "Era esperado var",
        "Era esperado caracter",
        "Era esperado cadeia",
        "Era esperado proc",
        "Era esperado inicio",
        "Era esperado fim",
        "Era esperado inteiro",
        "Era esperado booleano",
        "Era esperado funcao",
        "Era esperado se",
        "Era esperado entao",
        "Era esperado senao",
        "Era esperado leia",
        "Era esperado escreva",
        "Era esperado ou",
        "Era esperado e",
        "Era esperado nao",
        "Era esperado falso",
        "Era esperado verdadeiro",
        "Era esperado de",
        "Era esperado faca",
        "Era esperado real",
        "Era esperado vetor",
        "Era esperado enquanto",
        "Era esperado const",
        "Era esperado para",
        "Era esperado ate",
        "Era esperado passo",
        "Era esperado div",
        "Era esperado \";\"",
        "Era esperado \",\"",
        "Era esperado \".\"",
        "Era esperado \">\"",
        "Era esperado \"<\"",
        "Era esperado \"(\"",
        "Era esperado \")\"",
        "Era esperado \"[\"",
        "Era esperado \"]\"",
        "Era esperado \"+\"",
        "Era esperado \"-\"",
        "Era esperado \"*\"",
        "Era esperado \"/\"",
        "Era esperado \":\"",
        "Era esperado \":=\"",
        "Era esperado \"..\"",
        "Era esperado \"<>\"",
        "Era esperado \"<=\"",
        "Era esperado \">=\"",
        "Era esperado \"=\"",
        "Era esperado \"{\"",
        "Era esperado \"}\"",
        "<programa> inválido",
        "<bloco> inválido",
        "<dcl_const> inválido",
        "<dcl_var> inválido",
        "<dcl_procs> inválido",
        "<dcl_proc> inválido",
        "<par_formais> inválido",
        "<rep_par> inválido",
        "<lid> inválido",
        "<rep_lid> inválido",
        "<mp_par> inválido",
        "<tipo> inválido",
        "<dimensao1> inválido",
        "<dimensao2> inválido",
        "<constante> inválido",
        "<tipo_pre_definido> inválido",
        "<listacomando> inválido",
        "<replistacomando> inválido",
        "<comando> inválido",
        "<senaoparte> inválido",
        "<rcomid> inválido",
        "<expressao2> inválido",
        "<rep_lexpr> inválido",
        "<expressao> inválido",
        "<resto_expressao> inválido",
        "<oprel> inválido",
        "<expsimp> inválido",
        "<rep_expsimp> inválido",
        "<op_add> inválido",
        "<termo> inválido",
        "<rep_termo> inválido",
        "<op_mult> inválido",
        "<fator> inválido",
        "<rvar> inválido",
        "<constante_explicita> inválido"
    };
}
